package br.jm.financeiro.filter;

import br.jm.financeiro.entity.Usuario;
import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

public class DefaultUserPagesFilter extends AbstractFilter implements Filter {

    @Override
    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {

        request.setCharacterEncoding("UTF-8");
        request.setCharacterEncoding("UTF-8");

        HttpSession session = ((HttpServletRequest) request).getSession();
        //HttpServletRequest req = (HttpServletRequest) request;

        Usuario usuarioAutenticado = null;

        if (session.isNew()) {
            chain.doFilter(request, response);
        } else {
            try {
                usuarioAutenticado = (Usuario) session.getAttribute("usuarioAutenticado");
            } catch (Exception ex) {
                usuarioAutenticado = null;
            }

            if (usuarioAutenticado == null) {
                ((HttpServletResponse) request).sendRedirect("/index.jsp");
            } else {
                chain.doFilter(request, response);
            }
        }
    }

    @Override
    public void init(FilterConfig arg0) throws ServletException {
    }
}